#include <stdio.h>

/*
 * 汉诺塔问题：
 * 出发柱子上有n个碟子，可以借助中介柱子，到达目的柱子，在移动的过程中，保持上小下大的顺序不变
 * 假设有一个函数来实现，Hannoi(出发柱子，中介柱子，目的柱子，问题规模);
 * 假设起始情况：A柱子上有n个排列好的碟子，B柱子为中介的空柱子， C柱子也是空柱子，是最终的目的柱子
 * 给A柱子上得碟子起编号，从从上到下依次为1,2,3,.....n
 * 第一步：要将状态变成：A是最大的碟子，B上面有n-1个碟子，C空柱子
 *     换种描述方式：将A柱子上1到N-1个碟子挪到B柱子上   Hannoi(A,C,B,n-1)
 * 第二步：将A上得碟子挪到C上面 move(A,C)
 * 第三步：将B上面的n-1个碟子挪到C柱子上  Hannoi(B, A,C,n-1)
 *

 *
 *
 * */

void move(char start,char end){
    printf("%c------->%c\n",start,end);
}

 void Hannoi(char A,char B,char C,int n){
    if(n==1){
        move(A,C);
    }else{
        Hannoi(A,C,B,n-1);
        move(A,C);
        Hannoi(B, A,C,n-1);
    }
 }

int main() {

    Hannoi('A','B','C',3);
    //printf("Hello, World!\n");
    return 0;
}
